﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Input.Dao.HealthVISITPlanDao
 * 类型：       会员用药管理画面 数据库操作层
 * 功能说明：   会员用药功能 检索 登录
 * 作者：       黄鑫
 * 创建日期：   2007/09/25
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Commons.Db.Beans.Inp;
using Shpm.App.Input.Bean;
using Shpm.App.Master.Bean;


/// <summary>
/// Summary description for HealthMedicineDao
/// </summary>
namespace Shpm.App.Input.Dao
{
    public class HealthMedicineDao : ShpmBaseDao
    {
        public HealthMedicineDao() { }       

        // 从数据字典中取得画面列表项内容
        public const string FIND_BY_CATALOG = "CommonDictionary.FindByCatalog";

        // 所属会员列表 list
        public const string LST_MEMBER = "HealthMedicine.LstMember";

        // 用药计划 list
        public const string LST_MAIN = "HealthMedicine.LstMain";

        // 用药计划 list
        public const string LST_MAIN2 = "HealthMedicine.LstMain2";
        
        // 用药明细 list
        public const string LST_DETAIL = "HealthMedicineDetail.LstDetail";

        // 用药计划 insert
        public const string INSERT_MAIN = "HealthMedicine.InsMain";

        // 用药明细 insert
        public const string INSERT_DETAIL = "HealthMedicine.InsDetail";

        // 用药计划完成 finish
        public const string FINISH_MAIN = "HealMedicine.FinResult";

        // 用药计划完成检查 check
        public const string CHECK_FINISH = "HealthMedicine.ChkFinish";
      
        /*
         *名称： FindByCatalog
         *功能： 取得数据字典列表对象。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表 
         *说明： 从数据字典中取得画面列表项内容
        */
        public IList FindByCatalog(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_CATALOG, paramBean);
        }

        /*
         *名称： ListMember
         *功能： 取得所属会员列表对象。
         *参数： paramBean - 检索参数
         *返回： 所属会员列表 
         *说明： 从所属会员中取得画面列表项内容
        */
        public IList ListMember(HealthMedicineBean paramBean)
        {
            return base.QueryForList(LST_MEMBER, paramBean);
        }

        /*
         *名称： ListMain
         *功能： 取得用药计划列表对象。
         *参数： paramBean - 检索参数
         *返回： 用药计划列表 
         *说明： 从用药计划中取得画面列表项内容
        */
        public IList ListMain(HealthMedicineBean paramBean)
        {
            return base.QueryForList(LST_MAIN, paramBean);
        }

        /*
         *名称： ListMain2
         *功能： 取得用药计划列表对象。
         *参数： paramBean - 检索参数
         *返回： 用药计划列表 
         *说明： 从用药计划中取得画面列表项内容
        */
        public IList ListMain2(HealthMedicineBean paramBean)
        {
            return base.QueryForList(LST_MAIN2, paramBean);
        }

        /*
         *名称： ListDetail
         *功能： 取得用药明细列表对象。
         *参数： paramBean - 检索参数
         *返回： 用药明细列表 
         *说明： 从用药明细中取得过滤列表项内容
        */
        public IList ListDetail(HealthMedicineDetailBean paramBean)
        {
            return base.QueryForList(LST_DETAIL, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录用药信息对象。
         *参数： paramBean - 主表数据,Ilist - 明细表数据
         *返回： 明细表记录数
         *说明： 用药信息 insert 
        */
        public int Insert(HealthMedicineBean paramBean,IList lstDetail)
        {
            if (lstDetail.Count == 0)
            {
                return 0;
            }
            try
            {
                base.BeginTransaction();
                int memberMedicineId = (int)base.Insert(INSERT_MAIN, paramBean);
                HealthMedicineDetailBean beanDetail = null;
                for (int i = 0; i < lstDetail.Count; i++)
                {
                    beanDetail = (HealthMedicineDetailBean)lstDetail[i];
                    beanDetail.MemberMedicineId = memberMedicineId;
                    base.Insert(INSERT_DETAIL,beanDetail);
                }
                base.CommitTransaction();
                return lstDetail.Count;
            }
            catch (Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }

        }


        /*
         *名称： Update
         *功能： 更新用药计划对象(完成)。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 用药计划 update 
        */
        public int Finish(HealthMedicineBean paramBean)
        {
            return base.Update(FINISH_MAIN, paramBean);
        }

        /*
         *名称： ChkFinish
         *功能： 取得未完成药方列表对象。
         *参数： paramBean - 检索参数
         *返回： 药方信息列表 
         *说明： 从药方信息中取得画面列表项内容
        */
        public IList ChkFinish(HealthMedicineBean paramBean)
        {
            return base.QueryForList(CHECK_FINISH, paramBean);
        }
    }
}
